﻿using System.Threading.Tasks;
using com.IronOne.BoardPACWinAppBO.Auth;
using com.IronOne.BoardPACWinAppBO.General;
using com.IronOne.BoardPACWinAppBO.Settings;
using com.IronOne.BoardPACWinAppUtil.Enums;

namespace com.IronOne.BoardPACWinAppDAO.Auth
{
    public interface IAuthDAO
    {
        Task<UserModel> GetUserFromId(int userId);
        Task<ResponseDataModel> InsertOrUpdateUserAsync(UserModel userM);
        Task<bool> InsertOrUpdateUserMapperAsync(UserModel userM);
        Task<DeviceModel> GetDeviceAuthStatus();
        Task<bool> SetDeviceAuthStatus(DeviceModel devModel);
        Task<AppSettingModel> GetSupportInfoFromDb();
        Task<ResponseDataModel> LogOnOffline(LogOnModel logOnModel);
        Task<object> GetSettingValueBySettingName(DatabaseType dbtype, string settingName);
        Task<object> GetSettingUsageValueBySettingName(string settingName);
        Task<bool> SetSettingUsageValueBySettingName(string settingName, string value);
        Task<ResponseDataModel> WipeoutDevice();
        Task<ResponseDataModel> ResetDevice();
        Task<bool> CleanDecryptedAgendaItems();

        Task<string> CheckAndInitiateDateFormat();
    }
}